package com.nq.pojo;

import cn.afterturn.easypoi.excel.annotation.Excel;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;

import java.math.BigDecimal;

import java.util.Date;

@Data
public class UserWithdraw {

    // 提现类型-提现到银行卡
    public static final Integer BANK_TYPE = 1;
    // 提现类型-提现到USDT
    public static final Integer USDT_TYPE = 2;
    // 后台手动扣款
    public static final Integer MANUAL_TYPE = 3;
    // 审核中状态
    public static final Integer WITH_STATUS_0 = 0;
    // 审核成功状态
    public static final Integer WITH_STATUS_1 = 1;
    // 审核失败状态
    public static final Integer WITH_STATUS_2 = 2;
    // 审核取消状态
    public static final Integer WITH_STATUS_3 = 3;

    private Integer id;
    @Excel(name = "用户id")
    private Integer userId;
    @Excel(name = "用户名")
    private String nickName;
    @Excel(name = "代理id")
    private Integer agentId;
    @Excel(name = "出金金额")
    private BigDecimal withAmt;
    private Date applyTime;
    private Date transTime;
    private String withName;
    @Excel(name = "银行卡号")
    private String bankNo;
    @Excel(name = "银行名称")
    private String bankName;
    @Excel(name = "银行支行")
    private String bankAddress;
    /**
     * 提现类型
     */
    private Integer type;
    /**
     * usdt地址
     */
    private String usdtAddr;
    /**
     * usdt 网络类型
     */
    private Integer netType;
    @Excel(name = "状态" ,replace = { "审核中_0", "成功_1", "失败_2", "取消_3"  })
    private Integer withStatus;
    @Excel(name = "手续费")
    private BigDecimal withFee;
    @Excel(name = "原因")
    private String withMsg;

    public UserWithdraw(){

    }

    public UserWithdraw(Integer id, Integer userId, String nickName,
                        Integer agentId, BigDecimal withAmt,
                        Date applyTime, Date transTime, String withName,
                        String bankNo, String bankName, String bankAddress,
                        Integer withStatus, BigDecimal withFee, String withMsg,
                        Integer type, String usdtAddr, Integer netType) {

        this.id = id;

        this.userId = userId;

        this.nickName = nickName;

        this.agentId = agentId;

        this.withAmt = withAmt;

        this.applyTime = applyTime;

        this.transTime = transTime;

        this.withName = withName;

        this.bankNo = bankNo;

        this.bankName = bankName;

        this.bankAddress = bankAddress;

        this.withStatus = withStatus;

        this.withFee = withFee;

        this.withMsg = withMsg;

        this.type = type;

        this.usdtAddr = usdtAddr;

        this.netType = netType;

    }
}